/*
 * Thing.java
 *
 * Created on March 27, 2007, 8:17 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package labirinto;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import java.awt.Color;

/**
 *
 * @author canislupus
 */
public class Thing implements java.io.Serializable
{
    private boolean isConcrete;
    private boolean isItem;
    private boolean isDoor;
    private boolean isOpponent;
    public enum SPECIAL_ITEM {UpLife,UpSpeed,UpBullets};
    private SPECIAL_ITEM item;
    public enum OPPONENT_TYPE {Static, Active, Aggressor};
    private OPPONENT_TYPE opponent;
    private String doorMap;
    private Icon upIcon,downIcon,stopRightIcon,stopLeftIcon,leftIcon,rightIcon;
    private char id;
    private Oponente oponente;
    
    /** Creates a new instance of Thing */
    public Thing()
    {
        super();
        this.isConcrete = false;
        this.isDoor = false;
        this.isItem = false;
        this.upIcon = this.downIcon = this.stopLeftIcon = this.stopRightIcon = this.leftIcon = this.rightIcon = null;
        this.item = SPECIAL_ITEM.UpLife;
        this.opponent = OPPONENT_TYPE.Static;
    }
    
    public void setId(char id)
    {
        this.id = id;
    }
    
    public char getId()
    {
        return this.id;
    }
    
    public void setOponente(Oponente op)
    {
        this.oponente = op;
    }
    
    public Oponente getOponente()
    {
        return this.oponente;
    }
    
    public void setUpIcon(Icon icon)
    {
        this.upIcon = icon;
    }
    
    public Icon getUpIcon()
    {
        return this.upIcon;
    }

    public void setDownIcon(Icon icon)
    {
        this.downIcon = icon;
    }
    
    public Icon getDownIcon()
    {
        return this.downIcon;
    }

    public void setStopLeftIcon(Icon icon)
    {
        this.stopLeftIcon = icon;
    }
    
    public Icon getStopLeftIcon()
    {
        return this.stopLeftIcon;
    }

    public void setStopRightIcon(Icon icon)
    {
        this.stopRightIcon = icon;
    }
    
    public Icon getStopRightIcon()
    {
        return this.stopRightIcon;
    }

    public void setLeftIcon(Icon icon)
    {
        this.leftIcon = icon;
    }
    
    public Icon getLeftIcon()
    {
        return this.leftIcon;
    }

    public void setRightIcon(Icon icon)
    {
        this.rightIcon = icon;
    }
    
    public Icon getRightIcon()
    {
        return this.rightIcon;
    }

    public void setIsConcrete(boolean is)
    {
        this.isConcrete = is;
    }

    public boolean getIsConcrete()
    {
        return this.isConcrete;
    }
    
    public void setIsItem(boolean is)
    {
        this.isItem = is;
    }

    public boolean getIsItem()
    {
        return this.isItem;
    }

    public void setIsDoor(boolean is)
    {
        this.isDoor = is;
    }

    public boolean getIsDoor()
    {
        return this.isDoor;
    }

    public void setMapDoor(String map)
    {
        this.doorMap = map;
    }

    public String getMapDoor()
    {
        return this.doorMap;
    }
    
    public void setIsOpponent(boolean is)
    {
        this.isOpponent = is;
    }

    public boolean getIsOpponent()
    {
        return this.isOpponent;
    }
    
    public void setSpecialItem(SPECIAL_ITEM i)
    {
        this.item = i;
    }
    
    public SPECIAL_ITEM getSpecialItem()
    {
        return this.item;
    }

    public void setOpponentType(OPPONENT_TYPE i)
    {
        this.opponent = i;
    }
    
    public OPPONENT_TYPE getOpponentType()
    {
        return this.opponent;
    }

    public Thing clone()
    {
        Thing n = new Thing();
        n.isConcrete = this.isConcrete;
        n.isDoor = this.isDoor;
        n.isItem = this.isItem;
        n.downIcon = this.downIcon;
        n.leftIcon = this.leftIcon;
        n.rightIcon = this.rightIcon;
        n.stopLeftIcon = this.stopLeftIcon;
        n.stopRightIcon = this.stopRightIcon;
        n.upIcon = this.upIcon;
        n.id = this.id;
        return(n);
    }
}